package com.jyw.business.obstacles.domain.vo.web;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jyw.common.annotation.Conversion;
import com.jyw.common.constant.SysDictTypeConstant;
import com.jyw.common.enums.ConversionType;
import com.jyw.system.domain.vo.SimpleFileVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.FieldNameConstants;

import java.util.Date;
import java.util.List;

/**
 * @author 沈峻
 * @ClassName TransferOrderVO
 * @Description TODO
 * @Date 2023/10/10 10:35
 **/
@Data
@ApiModel("转单信息")
@FieldNameConstants
public class TransferOrderVO {

    @ApiModelProperty("报修时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date reportTime;

    @ApiModelProperty("建单人")
    @Conversion(value = ConversionType.USER,name = Fields.reportUserName)
    private Long reportUser;

    @ApiModelProperty("建单人名称")
    private String reportUserName;

    /** 创建时间 */
    @ApiModelProperty("创建时间(建单时间)")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date createTime;

    @ApiModelProperty("工单来源")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_SOURCE)
    private Integer source;

    @ApiModelProperty("工单来源标签")
    private String sourceToName;

    /** 实际报修地址 */
    @ApiModelProperty("实际报修地址")
    @Conversion(value = ConversionType.DEPT,name = Fields.actualRepairPlaceName)
    private Long actualRepairPlace;

    @ApiModelProperty("实际报修地址名称")
    private String actualRepairPlaceName;

    @ApiModelProperty("派单对象类型")
    private Integer sendObjType;

    @ApiModelProperty("派单对象标识")
    private Long sendObjId;

    @ApiModelProperty("派单所属小组")
    private Long sendTeam;

    /** 指派类型:1由我处理，2派单 */
    @ApiModelProperty("指派类型:1由我处理，2派单")
    private Integer sendType;

    /** 故障分类 */
    @ApiModelProperty("故障分类")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_TYPE)
    private String faultType;

    @ApiModelProperty("故障分类标签")
    private String faultTypeToName;

    @ApiModelProperty("故障描述")
    private String faultRemark;

    @ApiModelProperty("知识库ID")
    private Long learningId;

    @ApiModelProperty("预计工时(小时)")
    private Integer reqTime;

    @ApiModelProperty("期望完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date completeTime;

    @ApiModelProperty("紧急程度")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_DEGREE)
    private Integer degree;

    @ApiModelProperty("紧急程度标签")
    private String degreeToName;

    @ApiModelProperty("影响范围")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_RANGE)
    private Integer rangeType;

    @ApiModelProperty("影响范围标签")
    private String rangeTypeToName;

    @ApiModelProperty("响应类型")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_RESPONSE)
    private Integer responseType;

    @ApiModelProperty("响应类型标签")
    private String responseTypeToName;

    @ApiModelProperty("预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date appointment;

    @ApiModelProperty("资产名称")
    private String equipment;

    /** 故障设备位置 */
    @ApiModelProperty("资产位置")
    private String equipmentAddress;

    /** 故障设备位置id */
    @ApiModelProperty("资产位置id")
    private Long equipmentAddressId;

    @ApiModelProperty("附件")
    private List<SimpleFileVo> enclosure;

    @ApiModelProperty("报修电话")
    private String phone;

    @ApiModelProperty("报修人")
    private String user;

    @ApiModelProperty("报修科室")
    private Long deptId;

    /** 报修地址 */
    @ApiModelProperty("报修地址")
    private String place;

    @ApiModelProperty("录音")
    private String recording;
}
